package com.czy.moudle.pdm.service;

import com.czy.moudle.pdm.vo.Entity;
import org.dom4j.Document;

import java.util.List;

/**
 * PDM模板解析接口
 * 1.获取Doucment
 * 2.解析Document，获取数据库表配置信息
 */
public interface PDMParseService {
     String TABLE_SPAN_PATH = "//c:Tables/o:Table";
     String NAME_PATH = "a:Name";
     String CODE_PATH = "a:Code";
     String COLUMN_SPAN_PATH = "c:Columns/o:Column";
     String COMMON_PATH = "a:Comment";
     String TYPE_PATH  = "a:DataType";
     String LENGTH_PATH = "a:Length";

    /**
     * 解析指定的pdm文件，返回对应的Document对象
     * @param pdmPath pdm文件类路径
     * @return Document or null
     */
    Document getDocumentByPath(String pdmPath);

    /**
     * 解析pdmDocument，获取数据库表、字段信息
     *
     * 1.获取所有的table配置，解析其属性
     * 2.获取talbe内column配置
     *
     * @param doc pdm文档
     * @return
     */
    List<Entity> parseDoc(Document doc);
}
